#include "myserialport.h"

MySerialPort::MySerialPort()
{
    serialPort = new QSerialPort;

    connect(serialPort,SIGNAL(readyRead()),this,SLOT(onReceived()));
}

MySerialPort::~MySerialPort(){
    if(serialPort!=nullptr)
    {
        delete serialPort;
    }
}

// void MySerialPort::open(QString com,QSerialPort::BaudRate baudRate){
void MySerialPort::myopen(QString com,
                          QSerialPort::BaudRate baudRate,
                          QSerialPort::StopBits stopBits,
                          QSerialPort::DataBits dataBits,
                          QSerialPort::Parity dataParity)
{
    // 串口名字
    serialPort->setPortName(com);
    // 串口波特率
    serialPort->setBaudRate(baudRate);
    // 停止位
    serialPort->setStopBits(stopBits);
    // 数据位
    serialPort->setDataBits(dataBits);
    // 校验位
    serialPort->setParity(dataParity);

    emit openStatus(serialPort->open(QIODevice::ReadWrite));
}

void MySerialPort::close(){
    serialPort->close();
}

void MySerialPort::send(QByteArray data)
{
    qDebug() <<  serialPort->write(data);
}

void MySerialPort::onReceived(){
    buffer.append(serialPort->readAll());
    // 打印内容
    // qDebug() << buffer;
    // qDebug() << buffer.toHex();
    // qDebug() << QString(buffer);
    emit sendMsg(buffer);
    buffer.clear();

    //     buffer.append(serialPort->readAll());

    //     bool haveHead=false;

    //     do{
    //         // 查找包头

    //         // 取长度位

    //         // 判断缓冲区长度够不够
    //            //不够 return
    //            // 够了，取出数据

    //         //解析


    //         //buffer 删除掉已取出包头

    //         //再次查找包头
    //         haveHead=true; // fasle

    //     }while(haveHead);
}

